package cn.biplam.front.template.control.tree;

import cn.biplam.common.wrapper.ErrorMessage;
import cn.biplam.front.html.HtmlDiv;
import cn.biplam.front.html.base.HtmlWindow;
import cn.biplam.front.html.base.Const.Visibility_Mode;
import cn.biplam.front.html.base.Const.Window_Event;
import cn.biplam.front.template.base.Text;

/**
 * 	树的右键菜单
 * @author 	WangSong
 * @create 	2009-5-13 下午06:06:58
 * @version 1.0
 */
public class RightMenu {
	
	/**右键菜单id */
	private String sID;
	/**右键菜单 */
	private HtmlWindow rightMenu;
	
	/**
	 * 构造方法
	 * @param sID  右键id
	 * @param actionId  树的actionId
	 * @throws ErrorMessage 
	 */
	public RightMenu(String sID,String actionId) throws ErrorMessage{
		this.sID = sID;
		this.rightMenu = new HtmlDiv(this.sID);
		//this.rightMenu.put(new HtmlValue("h,treeActionId","h,treeActionId",actionId));	
	}
	
	/**
	 * 取右键菜单
	 * @return HtmlWindow
	 * @throws ErrorMessage 
	 */
	public HtmlWindow get() throws ErrorMessage{
		/**右键菜单设置样式*/
		this.rightMenu.setCssID("rmm");
		return this.rightMenu;
	}
	
	/**
	 * 设置右键菜单项到右键菜单容器中
	 * @param sID 右键菜单项编号
	 * @param text 菜单项名称
	 * @param script 菜单项绑定的脚本
	 * @throws ErrorMessage
	 */
	public void set(String sID,String text,String script) throws ErrorMessage{
		this.rightMenu.put(_getRmChild(sID, text, script));
	}
	
	/**
	 * 设置右键菜单项到右键菜单容器中
	 * @param RmChild 右键菜单项
	 * @throws ErrorMessage
	 */
	public void set(HtmlWindow RmChild) throws ErrorMessage{
		this.rightMenu.put(RmChild);
	}
	
	/**
	 * 取右键菜单项页面对象
	 * @param sID 		右键菜单项编号
	 * @param text 		菜单项名称
	 * @param script 	菜单项绑定的脚本
	 * @return HtmlWindow 右键菜单项页面对象
	 * @throws ErrorMessage
	 */
	public HtmlWindow getRmChild(String itemID,String text,String script) throws ErrorMessage{
		/**新建右键菜单对象属性*/
		/**设置右键属性名称*/
		HtmlWindow div = new HtmlDiv(this.sID+itemID);
		div.setVisibility(Visibility_Mode.Hidden);
		div.put(_getRmChild("it", text, script));
		return div;
	}
	
	/**
	 * 取右键菜单项页面对象
	 * @param sID 右键菜单项编号
	 * @param text 菜单项名称
	 * @param script 菜单项绑定的脚本
	 * @return HtmlWindow 右键菜单项页面对象
	 * @throws ErrorMessage
	 */
	private HtmlWindow _getRmChild(String itemID,String text,String script) throws ErrorMessage{
		/**新建右键菜单对象属性*/
		/**设置右键属性名称*/
		HtmlWindow div = new HtmlDiv(this.sID+itemID);
		HtmlWindow rMenuChild = new Text(text).get();
	
		/**设置右键事件绑定*/
		rMenuChild.bind(Window_Event.OnmouseOver,"onNode(this)");
		rMenuChild.bind(Window_Event.OnClick, script);
		/**设置右键样式属性*/
		rMenuChild.setCssID("rmn");
		div.put(rMenuChild);
		return div;
	}
	
}
